//auto gen by paipai.java.augogen ver 3.0.0
//author skyzhuang
//source idl: com.erp.storage.dao.idl.AddStockReq.java


#ifndef ERP_STORAGE_DDO_CSTOCKDDO_BY_AUTOGEN_V5_H
#define ERP_STORAGE_DDO_CSTOCKDDO_BY_AUTOGEN_V5_H


#include "app_platform/intf_serializable.h"
#include <bitset>
#include <string>
#include <sstream>
#include <iostream>


namespace erp
{
namespace storage
{
namespace ddo
{


class CStockDdo : public ISerializable
{
	public:
		std::string m_sLastErrMsg;///<错误信息

		/**
		 *  版本号   
		 *
		 * 版本 >= 0
		 */
		uint32_t dwVersion;

		/**
		 * cVersion_u uflag field
		 */
		uint8_t cVersion_u; //optional flag

		/**
		 * 仓库SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwStockSysNo;

		/**
		 * cStockSysNo_u uflag field
		 */
		uint8_t cStockSysNo_u; //optional flag

		/**
		 * 联系人SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwContactSysNo;

		/**
		 * cContactSysNo_u uflag field
		 */
		uint8_t cContactSysNo_u; //optional flag

		/**
		 * 编码
		 *
		 * 版本 >= 0
		 */
		std::string strStockID;

		/**
		 * cStockID_u uflag field
		 */
		uint8_t cStockID_u; //optional flag

		/**
		 * 全称
		 *
		 * 版本 >= 0
		 */
		std::string strFullName;

		/**
		 * cFullName_u uflag field
		 */
		uint8_t cFullName_u; //optional flag

		/**
		 * 简称
		 *
		 * 版本 >= 0
		 */
		std::string strName;

		/**
		 * cName_u uflag field
		 */
		uint8_t cName_u; //optional flag

		/**
		 * 拼音码
		 *
		 * 版本 >= 0
		 */
		std::string strPyCode;

		/**
		 * cPyCode_u uflag field
		 */
		uint8_t cPyCode_u; //optional flag

		/**
		 * 仓库属性,只读
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetStockProperty;

		/**
		 * cStockProperty_u uflag field
		 */
		uint8_t cStockProperty_u; //optional flag

		/**
		 * 仓库属性,设置
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetStockPropertyInclude;

		/**
		 * cStockPropertyInclude_u uflag field
		 */
		uint8_t cStockPropertyInclude_u; //optional flag

		/**
		 * 仓库属性,取消
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetStockPropertyExclude;

		/**
		 * cStockPropertyExclude_u uflag field
		 */
		uint8_t cStockPropertyExclude_u; //optional flag

		/**
		 * 仓库状态
		 *
		 * 版本 >= 0
		 */
		uint32_t dwStockStatus;

		/**
		 * cStockStatus_u uflag field
		 */
		uint8_t cStockStatus_u; //optional flag

		/**
		 * 创建人SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCreatorSysNo;

		/**
		 * cCreatorSysNo_u uflag field
		 */
		uint8_t cCreatorSysNo_u; //optional flag

		/**
		 * 创建时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRowCreatDate;

		/**
		 * cRowCreatDate_u uflag field
		 */
		uint8_t cRowCreatDate_u; //optional flag

		/**
		 * 编辑者SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwModifierSysNo;

		/**
		 * cModifierSysNo_u uflag field
		 */
		uint8_t cModifierSysNo_u; //optional flag

		/**
		 * 编辑时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRowModifyDate;

		/**
		 * cRowModifyDate_u uflag field
		 */
		uint8_t cRowModifyDate_u; //optional flag




	public:
		CStockDdo():
		dwVersion(0),
		cVersion_u(0),
		ddwStockSysNo(0),
		cStockSysNo_u(0),
		ddwContactSysNo(0),
		cContactSysNo_u(0),
		cStockID_u(0),
		cFullName_u(0),
		cName_u(0),
		cPyCode_u(0),
		cStockProperty_u(0),
		cStockPropertyInclude_u(0),
		cStockPropertyExclude_u(0),
		dwStockStatus(0),
		cStockStatus_u(0),
		ddwCreatorSysNo(0),
		cCreatorSysNo_u(0),
		dwRowCreatDate(0),
		cRowCreatDate_u(0),
		ddwModifierSysNo(0),
		cModifierSysNo_u(0),
		dwRowModifyDate(0),
		cRowModifyDate_u(0) {}
				CStockDdo& operator = (const CStockDdo& obj){

			this->dwVersion = obj.dwVersion;
			this->ddwStockSysNo = obj.ddwStockSysNo;
			this->ddwContactSysNo = obj.ddwContactSysNo;
			this->strStockID = obj.strStockID;
			this->strFullName = obj.strFullName;
			this->strName = obj.strName;
			this->strPyCode = obj.strPyCode;
			this->bitsetStockProperty = obj.bitsetStockProperty;
			this->bitsetStockPropertyInclude = obj.bitsetStockPropertyInclude;
			this->bitsetStockPropertyExclude = obj.bitsetStockPropertyExclude;
			this->dwStockStatus = obj.dwStockStatus;
			this->ddwCreatorSysNo = obj.ddwCreatorSysNo;
			this->dwRowCreatDate = obj.dwRowCreatDate;
			this->ddwModifierSysNo = obj.ddwModifierSysNo;
			this->dwRowModifyDate = obj.dwRowModifyDate;
			this->cVersion_u = obj.cVersion_u;
			this->cStockSysNo_u = obj.cStockSysNo_u;
			this->cContactSysNo_u = obj.cContactSysNo_u;
			this->cStockID_u = obj.cStockID_u;
			this->cFullName_u = obj.cFullName_u;
			this->cName_u = obj.cName_u;
			this->cPyCode_u = obj.cPyCode_u;
			this->cStockProperty_u = obj.cStockProperty_u;
			this->cStockPropertyInclude_u = obj.cStockPropertyInclude_u;
			this->cStockPropertyExclude_u = obj.cStockPropertyExclude_u;
			this->cStockStatus_u = obj.cStockStatus_u;
			this->cCreatorSysNo_u = obj.cCreatorSysNo_u;
			this->cRowCreatDate_u = obj.cRowCreatDate_u;
			this->cModifierSysNo_u = obj.cModifierSysNo_u;
			this->cRowModifyDate_u = obj.cRowModifyDate_u;
			return *this;
		}

	public:


		/**
		 * 是否设置 版本号   了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 bool  IsVersionSet() const{
				 return  cVersion_u != 0;
		}


		/**
		 * 获取uflag 版本号   了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 const uint8_t   GetVersionUFlag() const{
				 return  cVersion_u;
		}


		/**
		 * 设置 版本号   
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 void  SetVersion( const uint32_t& sVal, uint8_t cUFlag=1){
				dwVersion = sVal;
				cVersion_u = cUFlag;
		}


		/**
		 * 获取 版本号   
		 * 
		 * @return dwVersion value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetVersion() const {
				return dwVersion;
		}


		/**
		 * 是否设置仓库SysNo了
		 * 
		 * @param uint64_t:ddwStockSysNo
		 *  
		 * 
		 */
		 bool  IsStockSysNoSet() const{
				 return  cStockSysNo_u != 0;
		}


		/**
		 * 获取uflag仓库SysNo了
		 * 
		 * @param uint64_t:ddwStockSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetStockSysNoUFlag() const{
				 return  cStockSysNo_u;
		}


		/**
		 * 设置仓库SysNo
		 * 
		 * @param uint64_t:ddwStockSysNo
		 *  
		 * 
		 */
		 void  SetStockSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwStockSysNo = sVal;
				cStockSysNo_u = cUFlag;
		}


		/**
		 * 获取仓库SysNo
		 * 
		 * @return ddwStockSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetStockSysNo() const {
				return ddwStockSysNo;
		}


		/**
		 * 是否设置联系人SysNo了
		 * 
		 * @param uint64_t:ddwContactSysNo
		 *  
		 * 
		 */
		 bool  IsContactSysNoSet() const{
				 return  cContactSysNo_u != 0;
		}


		/**
		 * 获取uflag联系人SysNo了
		 * 
		 * @param uint64_t:ddwContactSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetContactSysNoUFlag() const{
				 return  cContactSysNo_u;
		}


		/**
		 * 设置联系人SysNo
		 * 
		 * @param uint64_t:ddwContactSysNo
		 *  
		 * 
		 */
		 void  SetContactSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwContactSysNo = sVal;
				cContactSysNo_u = cUFlag;
		}


		/**
		 * 获取联系人SysNo
		 * 
		 * @return ddwContactSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetContactSysNo() const {
				return ddwContactSysNo;
		}


		/**
		 * 是否设置编码了
		 * 
		 * @param std::string:strStockID
		 *  
		 * 
		 */
		 bool  IsStockIDSet() const{
				 return  cStockID_u != 0;
		}


		/**
		 * 获取uflag编码了
		 * 
		 * @param std::string:strStockID
		 *  
		 * 
		 */
		 const uint8_t   GetStockIDUFlag() const{
				 return  cStockID_u;
		}


		/**
		 * 设置编码
		 * 
		 * @param std::string:strStockID
		 *  
		 * 
		 */
		 void  SetStockID( const std::string& sVal, uint8_t cUFlag=1){
				strStockID = sVal;
				cStockID_u = cUFlag;
		}


		/**
		 * 获取编码
		 * 
		 * @return strStockID value 类型为:std::string
		 * 
		 */
		 const std::string&  GetStockID() const {
				return strStockID;
		}


		/**
		 * 获取编码
		 * 
		 * @return strStockID value 类型为:std::string
		 * 
		 */
		 std::string&  GetStockID() {
				return strStockID;
		}


		/**
		 * 是否设置全称了
		 * 
		 * @param std::string:strFullName
		 *  
		 * 
		 */
		 bool  IsFullNameSet() const{
				 return  cFullName_u != 0;
		}


		/**
		 * 获取uflag全称了
		 * 
		 * @param std::string:strFullName
		 *  
		 * 
		 */
		 const uint8_t   GetFullNameUFlag() const{
				 return  cFullName_u;
		}


		/**
		 * 设置全称
		 * 
		 * @param std::string:strFullName
		 *  
		 * 
		 */
		 void  SetFullName( const std::string& sVal, uint8_t cUFlag=1){
				strFullName = sVal;
				cFullName_u = cUFlag;
		}


		/**
		 * 获取全称
		 * 
		 * @return strFullName value 类型为:std::string
		 * 
		 */
		 const std::string&  GetFullName() const {
				return strFullName;
		}


		/**
		 * 获取全称
		 * 
		 * @return strFullName value 类型为:std::string
		 * 
		 */
		 std::string&  GetFullName() {
				return strFullName;
		}


		/**
		 * 是否设置简称了
		 * 
		 * @param std::string:strName
		 *  
		 * 
		 */
		 bool  IsNameSet() const{
				 return  cName_u != 0;
		}


		/**
		 * 获取uflag简称了
		 * 
		 * @param std::string:strName
		 *  
		 * 
		 */
		 const uint8_t   GetNameUFlag() const{
				 return  cName_u;
		}


		/**
		 * 设置简称
		 * 
		 * @param std::string:strName
		 *  
		 * 
		 */
		 void  SetName( const std::string& sVal, uint8_t cUFlag=1){
				strName = sVal;
				cName_u = cUFlag;
		}


		/**
		 * 获取简称
		 * 
		 * @return strName value 类型为:std::string
		 * 
		 */
		 const std::string&  GetName() const {
				return strName;
		}


		/**
		 * 获取简称
		 * 
		 * @return strName value 类型为:std::string
		 * 
		 */
		 std::string&  GetName() {
				return strName;
		}


		/**
		 * 是否设置拼音码了
		 * 
		 * @param std::string:strPyCode
		 *  
		 * 
		 */
		 bool  IsPyCodeSet() const{
				 return  cPyCode_u != 0;
		}


		/**
		 * 获取uflag拼音码了
		 * 
		 * @param std::string:strPyCode
		 *  
		 * 
		 */
		 const uint8_t   GetPyCodeUFlag() const{
				 return  cPyCode_u;
		}


		/**
		 * 设置拼音码
		 * 
		 * @param std::string:strPyCode
		 *  
		 * 
		 */
		 void  SetPyCode( const std::string& sVal, uint8_t cUFlag=1){
				strPyCode = sVal;
				cPyCode_u = cUFlag;
		}


		/**
		 * 获取拼音码
		 * 
		 * @return strPyCode value 类型为:std::string
		 * 
		 */
		 const std::string&  GetPyCode() const {
				return strPyCode;
		}


		/**
		 * 获取拼音码
		 * 
		 * @return strPyCode value 类型为:std::string
		 * 
		 */
		 std::string&  GetPyCode() {
				return strPyCode;
		}


		/**
		 * 是否设置仓库属性,只读了
		 * 
		 * @param std::bitset<32> :bitsetStockProperty
		 *  
		 * 
		 */
		 bool  IsStockPropertySet() const{
				 return  cStockProperty_u != 0;
		}


		/**
		 * 获取uflag仓库属性,只读了
		 * 
		 * @param std::bitset<32> :bitsetStockProperty
		 *  
		 * 
		 */
		 const uint8_t   GetStockPropertyUFlag() const{
				 return  cStockProperty_u;
		}


		/**
		 * 设置仓库属性,只读
		 * 
		 * @param std::bitset<32> :bitsetStockProperty
		 *  
		 * 
		 */
		 void  SetStockProperty( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetStockProperty = sVal;
				cStockProperty_u = cUFlag;
		}


		/**
		 * 获取仓库属性,只读
		 * 
		 * @return bitsetStockProperty value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetStockProperty() const {
				return bitsetStockProperty;
		}


		/**
		 * 获取仓库属性,只读
		 * 
		 * @return bitsetStockProperty value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetStockProperty() {
				return bitsetStockProperty;
		}


		/**
		 * 是否设置仓库属性,设置了
		 * 
		 * @param std::bitset<32> :bitsetStockPropertyInclude
		 *  
		 * 
		 */
		 bool  IsStockPropertyIncludeSet() const{
				 return  cStockPropertyInclude_u != 0;
		}


		/**
		 * 获取uflag仓库属性,设置了
		 * 
		 * @param std::bitset<32> :bitsetStockPropertyInclude
		 *  
		 * 
		 */
		 const uint8_t   GetStockPropertyIncludeUFlag() const{
				 return  cStockPropertyInclude_u;
		}


		/**
		 * 设置仓库属性,设置
		 * 
		 * @param std::bitset<32> :bitsetStockPropertyInclude
		 *  
		 * 
		 */
		 void  SetStockPropertyInclude( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetStockPropertyInclude = sVal;
				cStockPropertyInclude_u = cUFlag;
		}


		/**
		 * 获取仓库属性,设置
		 * 
		 * @return bitsetStockPropertyInclude value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetStockPropertyInclude() const {
				return bitsetStockPropertyInclude;
		}


		/**
		 * 获取仓库属性,设置
		 * 
		 * @return bitsetStockPropertyInclude value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetStockPropertyInclude() {
				return bitsetStockPropertyInclude;
		}


		/**
		 * 是否设置仓库属性,取消了
		 * 
		 * @param std::bitset<32> :bitsetStockPropertyExclude
		 *  
		 * 
		 */
		 bool  IsStockPropertyExcludeSet() const{
				 return  cStockPropertyExclude_u != 0;
		}


		/**
		 * 获取uflag仓库属性,取消了
		 * 
		 * @param std::bitset<32> :bitsetStockPropertyExclude
		 *  
		 * 
		 */
		 const uint8_t   GetStockPropertyExcludeUFlag() const{
				 return  cStockPropertyExclude_u;
		}


		/**
		 * 设置仓库属性,取消
		 * 
		 * @param std::bitset<32> :bitsetStockPropertyExclude
		 *  
		 * 
		 */
		 void  SetStockPropertyExclude( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetStockPropertyExclude = sVal;
				cStockPropertyExclude_u = cUFlag;
		}


		/**
		 * 获取仓库属性,取消
		 * 
		 * @return bitsetStockPropertyExclude value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetStockPropertyExclude() const {
				return bitsetStockPropertyExclude;
		}


		/**
		 * 获取仓库属性,取消
		 * 
		 * @return bitsetStockPropertyExclude value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetStockPropertyExclude() {
				return bitsetStockPropertyExclude;
		}


		/**
		 * 是否设置仓库状态了
		 * 
		 * @param uint32_t:dwStockStatus
		 *  
		 * 
		 */
		 bool  IsStockStatusSet() const{
				 return  cStockStatus_u != 0;
		}


		/**
		 * 获取uflag仓库状态了
		 * 
		 * @param uint32_t:dwStockStatus
		 *  
		 * 
		 */
		 const uint8_t   GetStockStatusUFlag() const{
				 return  cStockStatus_u;
		}


		/**
		 * 设置仓库状态
		 * 
		 * @param uint32_t:dwStockStatus
		 *  
		 * 
		 */
		 void  SetStockStatus( const uint32_t& sVal, uint8_t cUFlag=1){
				dwStockStatus = sVal;
				cStockStatus_u = cUFlag;
		}


		/**
		 * 获取仓库状态
		 * 
		 * @return dwStockStatus value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetStockStatus() const {
				return dwStockStatus;
		}


		/**
		 * 是否设置创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 bool  IsCreatorSysNoSet() const{
				 return  cCreatorSysNo_u != 0;
		}


		/**
		 * 获取uflag创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetCreatorSysNoUFlag() const{
				 return  cCreatorSysNo_u;
		}


		/**
		 * 设置创建人SysNo
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 void  SetCreatorSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCreatorSysNo = sVal;
				cCreatorSysNo_u = cUFlag;
		}


		/**
		 * 获取创建人SysNo
		 * 
		 * @return ddwCreatorSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCreatorSysNo() const {
				return ddwCreatorSysNo;
		}


		/**
		 * 是否设置创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 bool  IsRowCreatDateSet() const{
				 return  cRowCreatDate_u != 0;
		}


		/**
		 * 获取uflag创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 const uint8_t   GetRowCreatDateUFlag() const{
				 return  cRowCreatDate_u;
		}


		/**
		 * 设置创建时间
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 void  SetRowCreatDate( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRowCreatDate = sVal;
				cRowCreatDate_u = cUFlag;
		}


		/**
		 * 获取创建时间
		 * 
		 * @return dwRowCreatDate value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRowCreatDate() const {
				return dwRowCreatDate;
		}


		/**
		 * 是否设置编辑者SysNo了
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 bool  IsModifierSysNoSet() const{
				 return  cModifierSysNo_u != 0;
		}


		/**
		 * 获取uflag编辑者SysNo了
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetModifierSysNoUFlag() const{
				 return  cModifierSysNo_u;
		}


		/**
		 * 设置编辑者SysNo
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 void  SetModifierSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwModifierSysNo = sVal;
				cModifierSysNo_u = cUFlag;
		}


		/**
		 * 获取编辑者SysNo
		 * 
		 * @return ddwModifierSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetModifierSysNo() const {
				return ddwModifierSysNo;
		}


		/**
		 * 是否设置编辑时间了
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 bool  IsRowModifyDateSet() const{
				 return  cRowModifyDate_u != 0;
		}


		/**
		 * 获取uflag编辑时间了
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 const uint8_t   GetRowModifyDateUFlag() const{
				 return  cRowModifyDate_u;
		}


		/**
		 * 设置编辑时间
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 void  SetRowModifyDate( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRowModifyDate = sVal;
				cRowModifyDate_u = cUFlag;
		}


		/**
		 * 获取编辑时间
		 * 
		 * @return dwRowModifyDate value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRowModifyDate() const {
				return dwRowModifyDate;
		}

		virtual bool Serialize(CByteStreamNetwork& bs){
		
			uint32_t dwMyLen = 0;
			if(bs.isStoring()) //for write in buffer
			{
				//can not larger than 1 M.
				CByteStreamNetwork bsDummy(NULL, 1024 * 1024, false);
				//bsDummy for precheck the xo size...
				bsDummy.isStoring(true);
				Serialize_i(bsDummy);
				dwMyLen = bsDummy.getWrittenLength();
				bs & dwMyLen;
				Serialize_i(bs);
			}
			else
			{    //for read from buffer
				bs & dwMyLen;
				uint32_t dwReadedLen = bs.getReadLength();
				Serialize_i(bs);
				dwReadedLen = bs.getReadLength() - dwReadedLen;
				// dwReadedLen for the size of xo
				if( dwReadedLen > dwMyLen ){
					return false;
				}
				//go through the unwanted mem position...
				bs.goForward( dwMyLen - dwReadedLen );
			}

			return bs.isGood();
		}

		bool Serialize_i(CByteStreamNetwork& bsTmp){

			bsTmp & dwVersion; // 序列化 版本号    类型为uint32_t
			bsTmp & cVersion_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwStockSysNo; // 序列化仓库SysNo 类型为uint64_t
			bsTmp & cStockSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwContactSysNo; // 序列化联系人SysNo 类型为uint64_t
			bsTmp & cContactSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & strStockID; // 序列化编码 类型为String
			bsTmp & cStockID_u; // 序列化uflag 类型为uint8_t
			bsTmp & strFullName; // 序列化全称 类型为String
			bsTmp & cFullName_u; // 序列化uflag 类型为uint8_t
			bsTmp & strName; // 序列化简称 类型为String
			bsTmp & cName_u; // 序列化uflag 类型为uint8_t
			bsTmp & strPyCode; // 序列化拼音码 类型为String
			bsTmp & cPyCode_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetStockProperty; // 序列化仓库属性,只读 类型为BitSet
			bsTmp & cStockProperty_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetStockPropertyInclude; // 序列化仓库属性,设置 类型为BitSet
			bsTmp & cStockPropertyInclude_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetStockPropertyExclude; // 序列化仓库属性,取消 类型为BitSet
			bsTmp & cStockPropertyExclude_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwStockStatus; // 序列化仓库状态 类型为uint32_t
			bsTmp & cStockStatus_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwCreatorSysNo; // 序列化创建人SysNo 类型为uint64_t
			bsTmp & cCreatorSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwRowCreatDate; // 序列化创建时间 类型为uint32_t
			bsTmp & cRowCreatDate_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwModifierSysNo; // 序列化编辑者SysNo 类型为uint64_t
			bsTmp & cModifierSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwRowModifyDate; // 序列化编辑时间 类型为uint32_t
			bsTmp & cRowModifyDate_u; // 序列化uflag 类型为uint8_t
			return bsTmp.isGood();
		}

		const char* GetLastErrMsg() const{
			return m_sLastErrMsg.c_str();
		}

		bool VerifyStockDdo(){

			if(!IsVersionSet()){
				m_sLastErrMsg = "Miss Param:version";
				return false;
			}

			if(!IsStockSysNoSet()){
				m_sLastErrMsg = "Miss Param:stockSysNo";
				return false;
			}

			if(!IsContactSysNoSet()){
				m_sLastErrMsg = "Miss Param:contactSysNo";
				return false;
			}

			if(!IsStockIDSet()){
				m_sLastErrMsg = "Miss Param:stockID";
				return false;
			}

			if(!IsFullNameSet()){
				m_sLastErrMsg = "Miss Param:fullName";
				return false;
			}

			if(!IsNameSet()){
				m_sLastErrMsg = "Miss Param:name";
				return false;
			}

			if(!IsPyCodeSet()){
				m_sLastErrMsg = "Miss Param:pyCode";
				return false;
			}

			if(!IsStockPropertySet()){
				m_sLastErrMsg = "Miss Param:stockProperty";
				return false;
			}

			if(!IsStockPropertyIncludeSet()){
				m_sLastErrMsg = "Miss Param:stockPropertyInclude";
				return false;
			}

			if(!IsStockPropertyExcludeSet()){
				m_sLastErrMsg = "Miss Param:stockPropertyExclude";
				return false;
			}

			if(!IsStockStatusSet()){
				m_sLastErrMsg = "Miss Param:stockStatus";
				return false;
			}

			if(!IsCreatorSysNoSet()){
				m_sLastErrMsg = "Miss Param:creatorSysNo";
				return false;
			}

			if(!IsRowCreatDateSet()){
				m_sLastErrMsg = "Miss Param:rowCreatDate";
				return false;
			}

			if(!IsModifierSysNoSet()){
				m_sLastErrMsg = "Miss Param:modifierSysNo";
				return false;
			}

			if(!IsRowModifyDateSet()){
				m_sLastErrMsg = "Miss Param:rowModifyDate";
				return false;
			}
			return true;
		}

		void DumpData(std::ostream& oss) const{
		
			oss<<"[dwVersion:"<<dwVersion<<"] ";
			oss<<"[cVersion_u:"<<(int)cVersion_u<<"] ";
			oss<<"[ddwStockSysNo:"<<ddwStockSysNo<<"] ";
			oss<<"[cStockSysNo_u:"<<(int)cStockSysNo_u<<"] ";
			oss<<"[ddwContactSysNo:"<<ddwContactSysNo<<"] ";
			oss<<"[cContactSysNo_u:"<<(int)cContactSysNo_u<<"] ";
			oss<<"[strStockID:"<<strStockID<<"] ";
			oss<<"[cStockID_u:"<<(int)cStockID_u<<"] ";
			oss<<"[strFullName:"<<strFullName<<"] ";
			oss<<"[cFullName_u:"<<(int)cFullName_u<<"] ";
			oss<<"[strName:"<<strName<<"] ";
			oss<<"[cName_u:"<<(int)cName_u<<"] ";
			oss<<"[strPyCode:"<<strPyCode<<"] ";
			oss<<"[cPyCode_u:"<<(int)cPyCode_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cStockProperty_u:"<<(int)cStockProperty_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cStockPropertyInclude_u:"<<(int)cStockPropertyInclude_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cStockPropertyExclude_u:"<<(int)cStockPropertyExclude_u<<"] ";
			oss<<"[dwStockStatus:"<<dwStockStatus<<"] ";
			oss<<"[cStockStatus_u:"<<(int)cStockStatus_u<<"] ";
			oss<<"[ddwCreatorSysNo:"<<ddwCreatorSysNo<<"] ";
			oss<<"[cCreatorSysNo_u:"<<(int)cCreatorSysNo_u<<"] ";
			oss<<"[dwRowCreatDate:"<<dwRowCreatDate<<"] ";
			oss<<"[cRowCreatDate_u:"<<(int)cRowCreatDate_u<<"] ";
			oss<<"[ddwModifierSysNo:"<<ddwModifierSysNo<<"] ";
			oss<<"[cModifierSysNo_u:"<<(int)cModifierSysNo_u<<"] ";
			oss<<"[dwRowModifyDate:"<<dwRowModifyDate<<"] ";
			oss<<"[cRowModifyDate_u:"<<(int)cRowModifyDate_u<<"] ";
		
		}

		// codydeng提供,非常好的dump方法 ^-^  。。。。。
		template<typename T>
		T & DumpPlusData(T& oss){
			oss<<"dwVersion:"<<dwVersion;
			oss<<"[cVersion_u:"<<cVersion_u<<"] ";
			oss<<"ddwStockSysNo:"<<ddwStockSysNo;
			oss<<"[cStockSysNo_u:"<<cStockSysNo_u<<"] ";
			oss<<"ddwContactSysNo:"<<ddwContactSysNo;
			oss<<"[cContactSysNo_u:"<<cContactSysNo_u<<"] ";
			oss<<"strStockID:"<<strStockID;
			oss<<"[cStockID_u:"<<cStockID_u<<"] ";
			oss<<"strFullName:"<<strFullName;
			oss<<"[cFullName_u:"<<cFullName_u<<"] ";
			oss<<"strName:"<<strName;
			oss<<"[cName_u:"<<cName_u<<"] ";
			oss<<"strPyCode:"<<strPyCode;
			oss<<"[cPyCode_u:"<<cPyCode_u<<"] ";
			oss<<"bitsetStockProperty:"<<bitsetStockProperty;
			oss<<"[cStockProperty_u:"<<cStockProperty_u<<"] ";
			oss<<"bitsetStockPropertyInclude:"<<bitsetStockPropertyInclude;
			oss<<"[cStockPropertyInclude_u:"<<cStockPropertyInclude_u<<"] ";
			oss<<"bitsetStockPropertyExclude:"<<bitsetStockPropertyExclude;
			oss<<"[cStockPropertyExclude_u:"<<cStockPropertyExclude_u<<"] ";
			oss<<"dwStockStatus:"<<dwStockStatus;
			oss<<"[cStockStatus_u:"<<cStockStatus_u<<"] ";
			oss<<"ddwCreatorSysNo:"<<ddwCreatorSysNo;
			oss<<"[cCreatorSysNo_u:"<<cCreatorSysNo_u<<"] ";
			oss<<"dwRowCreatDate:"<<dwRowCreatDate;
			oss<<"[cRowCreatDate_u:"<<cRowCreatDate_u<<"] ";
			oss<<"ddwModifierSysNo:"<<ddwModifierSysNo;
			oss<<"[cModifierSysNo_u:"<<cModifierSysNo_u<<"] ";
			oss<<"dwRowModifyDate:"<<dwRowModifyDate;
			oss<<"[cRowModifyDate_u:"<<cRowModifyDate_u<<"] ";
			return oss;
		}

		// wileywang提供,树形dump方法 ^-^  。。。。。
		void DumpDataTree(std::ostream& os, int ident = 0)const {
			g_pprint(os, "dwVersion", dwVersion, ident);
			g_pprint(os, "cVersion_u", cVersion_u, ident);
			g_pprint(os, "ddwStockSysNo", ddwStockSysNo, ident);
			g_pprint(os, "cStockSysNo_u", cStockSysNo_u, ident);
			g_pprint(os, "ddwContactSysNo", ddwContactSysNo, ident);
			g_pprint(os, "cContactSysNo_u", cContactSysNo_u, ident);
			g_pprint(os, "strStockID", strStockID, ident);
			g_pprint(os, "cStockID_u", cStockID_u, ident);
			g_pprint(os, "strFullName", strFullName, ident);
			g_pprint(os, "cFullName_u", cFullName_u, ident);
			g_pprint(os, "strName", strName, ident);
			g_pprint(os, "cName_u", cName_u, ident);
			g_pprint(os, "strPyCode", strPyCode, ident);
			g_pprint(os, "cPyCode_u", cPyCode_u, ident);
			g_pprint(os, "bitsetStockProperty", bitsetStockProperty, ident);
			g_pprint(os, "cStockProperty_u", cStockProperty_u, ident);
			g_pprint(os, "bitsetStockPropertyInclude", bitsetStockPropertyInclude, ident);
			g_pprint(os, "cStockPropertyInclude_u", cStockPropertyInclude_u, ident);
			g_pprint(os, "bitsetStockPropertyExclude", bitsetStockPropertyExclude, ident);
			g_pprint(os, "cStockPropertyExclude_u", cStockPropertyExclude_u, ident);
			g_pprint(os, "dwStockStatus", dwStockStatus, ident);
			g_pprint(os, "cStockStatus_u", cStockStatus_u, ident);
			g_pprint(os, "ddwCreatorSysNo", ddwCreatorSysNo, ident);
			g_pprint(os, "cCreatorSysNo_u", cCreatorSysNo_u, ident);
			g_pprint(os, "dwRowCreatDate", dwRowCreatDate, ident);
			g_pprint(os, "cRowCreatDate_u", cRowCreatDate_u, ident);
			g_pprint(os, "ddwModifierSysNo", ddwModifierSysNo, ident);
			g_pprint(os, "cModifierSysNo_u", cModifierSysNo_u, ident);
			g_pprint(os, "dwRowModifyDate", dwRowModifyDate, ident);
			g_pprint(os, "cRowModifyDate_u", cRowModifyDate_u, ident);
		}
		
		//提供ToString借口，默认为DumpData格式，请按需要进行修改
		std::string ToString() const{
			std::stringstream ss;
			DumpData(ss);
			return ss.str();
		}

/**
 ********************以下信息是每个版本的字段********************
 */

};

}
}
}

#endif /* ERP_STORAGE_DDO_CSTOCKDDO_BY_AUTOGEN_V5_H */
